package summary;

/**
 * @Author: 海琳琦
 * @Date: 2022/7/4 21:10
 */
public class Title48 {

    public void rotate(int[][] matrix) {
        //矩阵的转置
        int n = matrix.length;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < i; j++) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[j][i];
                matrix[j][i] = temp;
            }
        }
        //左右翻转
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n / 2; j++) {
                int temp = matrix[i][j];
                matrix[i][j] = matrix[i][n - 1 - j];
                matrix[i][n - 1 - j] = temp;
            }
        }
    }

    /**
     * 情况一：顺时针转 90 度：先转置再左右镜像
     * 1 2 3               7 4 1
     * 4 5 6               8 5 2
     * 7 8 9               9 6 3
     * 情况二：顺时针转 180 度:先上下镜像，再左右镜像（先左右再上下也可）
     * 1 2 3               9 8 7
     * 4 5 6               6 5 4
     * 7 8 9               3 2 1
     * 情况三：顺时针转 270 度：先转置再上下镜像
     * 1 2 3              3 6 9
     * 4 5 6              2 5 8
     * 7 8 9              1 4 7
     * @param args
     */
    public static void main(String[] args) {

    }
}
